Есть число
double test = 0;
При некоторых условиях оно меняется
test = json.test;
json.test -- элемент из json массива типа double. В нём хранится число 9.5
Затем я через GET отправляю test в php файл, где оно записывается в БД.
У меня записывается в базу число 9. В чём может быть причина?
В php никакого округления нет
Проблема иногда появляется, иногда исчезает.
Так сделал, чтобы не нужно было конвертировать числа перед отправкой в PHP файл
public Form1()
{
InitializeComponent();
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
}
Думаю здесь ты можешь найти ответ. Как вариант:
Значения должны быть одинаковыми, чтобы считаться равными. Особенно если значения с плавающей запятой зависят от нескольких математических операций, обычно они теряют точность и их значения практически идентичны, за исключением их наименьших значащих цифр. По этой причине возвращаемое значение метода CompareTo в некоторых случаях может показаться неудивительной. Например, умножение на определенное значение, за которым следует деление на одно и то же значение, должно создать исходное значение. Однако в следующем примере вычисленное значение оказывается больше, чем исходное значение.
Или, другими словами, не нужно использовать вещественные числа для сравнения от слова совсем. В программировании это значение, которое говорит о примерной величине. Если нужно оперировать точностью - используй соответствующие объекты. В финансах например BigDecimal (Java). Про аналог в шарпе можно здесь почитать.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости