Вырезать первые два символа после точки

106
02 февраля 2022, 23:40

Столкнулся с простой задачей. Нужно вырезать первые два символа после точки в типе double. Например есть число

price = 26.109000006 Я должен получить 10. Не 26.10, а просто 10. Без каких либо округление.

Если конвертировать это число в стринг и вырезать первые числа после точки то это делается так.

string stringPrice = price.ToString();
stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1);

На выходи будет 10. Но есть один нюанс. Если попадется число например вот такое

26.10000000 То метод ToString() вернет мне не 26.10000000 а 26.1 и на строке

stringPrice = stringPrice.Substring(stringPrice.IndexOf(',')+1); я уже поймаю исключение. По идеи метод ToString() должен был бы конвертнуть вот так "26.10000000". Но нет, он обрезать нули.

Вообще-то есть подозрение что я вовсе неправильным путем пошел. Моя окончательная цель просто сравнение первых 2-х символом после точки равны ли они 0. Просто может попасться число 26.0000000005 и тогда на целое число не проверю

Как можно просто получить первые два числа после точки без округлений и обрезаний нулей. Спасибо

Answer 1

То что у вас "не нули" можно проверить так:

(26.0000000005 - 26) >= 0.01 - false

(26.109000006 - 26) >= 0.01 - true

Ну или более обобщенный вариант: (number - Math.Truncate(number)) >= 0.01

READ ALSO
Функция str_replace() работает некорректно

Функция str_replace() работает некорректно

В этот код работает частично, буквы меняются, но коды не меняются

153
Загрузка изображения на сервер по ссылке

Загрузка изображения на сервер по ссылке

Решил попробовать написать свой парсер для сайта и столкнулся с небольшой проблемойНу, начну с того, что парсер работает, он отлично собирает...

99
Что использовать/делать/учить? [закрыт]

Что использовать/делать/учить? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме

195
PHP. Передача данных из неординарных тегов

PHP. Передача данных из неординарных тегов

Могу ли я передать данные находящиеся между тегами <h1></h1> придав имя =>

124