Double未正确存储在MySQL数据库中

扎克

我有一个MVC应用程序,该应用程序具有可更新数据库的纬度和经度的静态服务。我将值作为字符串发送到API,并在将其存储为Double之前将其转换为Double。这是我用来将字符串转换为双精度的代码:

Double _latitude, _longitude;
try
{
     Double.TryParse(lattitude, NumberStyles.Any,CultureInfo.CurrentCulture, out _latitude);
     Double.TryParse(Longtitude, NumberStyles.Any,CultureInfo.CurrentCulture, out _longitude);
}
catch(Exception e)
{
     _latitude = 0;
     _longitude = 0;
}

当它存储在数据库中时,我缺少小数点。例如:

53.345634存储为53345634

我正在Windows 2012上运行的开发环境上进行此工作。但是,当将其移至Windows 2008生产服务器时,我看到了此问题。

托马斯·麦琴斯基

指定正确的IFormatProvider / CultureInfo

您观察到的行为可能是由于两台计算机具有不同的CurrentCultures引起的。默认值CurrentCulture取决于Windows版本。

为了在各种机器上获得一致的结果,您应该为Parse或TryParse方法提供一个特定的CultureInfo(或任何其他实现的类IFormatProvider),例如

// using System.Globalization;
double value = Double.Parse(stringValue, CultureInfo.InvariantCulture); 

或者

double valueUsEnglish = Double.Parse(stringValue, new CultureInfo("en-US"));

解析方法使用区域性特定的小数点符号组分隔符符号在某些语言(例如英语)中,小数点符号是点,而在其他语言(例如波兰语中)则是逗号。组分隔符在各种语言中也有所不同。

如果53.345634被解析为53345634,则您的计算机使用一种文化,其中点是组分隔符。

解析与TryParse

你也应该考虑是否采用ParseTryParse方法是比较合适的。

如果在正常运行期间您的程序预期输出无效(例如,它是用户提供的值),则绝对应使用TryParse并检查返回的值。TryParse返回一个布尔值,指示解析是否成功并且没有引发异常。

如果您要解析的值永远不会出错(例如,您正在解析与程序绑定的资源),则可以使用Parse如果您有某种方法可以恢复用户或向用户提供其他信息,则可以捕获适当的异常。根据文件可能的例外是:ArgumentNullExceptionFormatExceptionOverflowException

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

表单字段未存储在mysql数据库中

来自分类Dev

输入未存储在Mysql数据库中

来自分类Dev

表单字段未存储在mysql数据库中

来自分类Dev

数据未正确存储在数据库中,laravel,php

来自分类Dev

结果未存储在 Google 数据存储数据库中

来自分类Dev

加密的字符串未正确存储在数据库中

来自分类Dev

在mysql数据库中存储等级

来自分类Dev

数据未存储在来自 PHP 站点的 mysql 数据库表中

来自分类Dev

提交的数据未存储在数据库中

来自分类Dev

提交的数据未存储在数据库中

来自分类Dev

我的数据未存储在数据库中

来自分类Dev

数据未存储到领域数据库中

来自分类Dev

MySQL数据库时区未正确设置-为什么?

来自分类Dev

PHP未以正确格式导出MySQL数据库

来自分类Dev

在MySQL数据库中运行事件调度程序期间未调用存储过程

来自分类Dev

最好的方法,将已更改和未更改的值存储到MySql数据库中

来自分类Dev

图像未存储在数据库mysql workbench iin python django中

来自分类Dev

在MySQL数据库中运行事件调度程序期间未调用存储过程

来自分类Dev

货币符号未使用 CodeIgniter 存储在 mySql 数据库中

来自分类Dev

无法在iOS的Realm数据库中存储Double值

来自分类Dev

在Firebase数据库中存储用户的正确方法

来自分类Dev

在数据库中存储json的正确方法

来自分类Dev

PHP:数据库中的内容未正确显示

来自分类Dev

PHP:数据库中的内容未正确显示

来自分类Dev

单选按钮值未存储在数据库中

来自分类Dev

用户未存储在Spring数据库中

来自分类Dev

用户数据未正确创建或未正确插入Firebase数据库中

来自分类Dev

在MySQL数据库中存储非关系元数据

来自分类Dev

数据未插入php的mysql数据库中

Related 相关文章

热门标签

归档