首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >双到两个不同格式字符串的“智能”转换?

问双到两个不同格式字符串的“智能”转换?
EN

Stack Overflow用户
提问于 2009-10-28 08:20:57
回答 6查看 405关注 0票数 1

我正在使用一个数据库,该数据库的限制是它可以存储的仅(数字)数据类型是一个双。我想要做的是选择某个行的编号并将其放入HTTP请求中。问题的核心是,我不知道这个数字是否应该有小数。

例如,如果double是ID,我就不能进行任何格式设置,因为获取HTTP请求的站点将被混淆。注意以下例子:

代码语言:javascript
复制
site.com/showid.php?id=12300000 // OK
site.com/showid.php?id=1.23E7 // Bad; scientific notation
site.com/showid.php?id=12300000.0 // Bad; trailing decimal

解决这个问题的方法是将其转换为一个长。忽略了超长的问题,它解决了科学的表示法和(显然)尾随小数。这可能是一个可以接受的解决方案,但是如果代码不假设它是我们正在处理的if,那就太好了。例如,如果我要查询一个显示地图并且数字是坐标的站点,那么小数非常重要的呢?,那么,从长到长的转换不再是可以接受的。

简言之;

  • 如果双数没有小数,请不要添加尾随小数。
  • 如果它有小数,就把它们全保留下来。
  • 这两种情况都不应该有科学的符号,也不应该有上千个分离器。

这个解决方案将被移植到C#和Java,所以我接受这两种语言的答案。(哦,我不知道该怎么称呼这个问题,如果你有更好的东西,可以随意改名。)

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-10-28 09:22:27

以下是我自己的结论:

  • 检查一下双数是否有小数。
  • 根据这一点,对字符串进行相应的格式化。
  • 然后是一些重要的东西;如果不指定不变的区域性,则在“有小数”大小写中的逗号可能是",“而不是”a“。HTTP请求不喜欢它。当然,只有当操作系统设置为更喜欢逗号的地区时,才会出现这个问题。 公共静态字符串DoubleToStringFormat(double dval) { long lval = (long)dval;if ((double)lval == dval) { //没有小数:格式为整数返回dval.ToString("#.",CultureInfo.InvariantCulture);}{/有小数:保持它们都返回dval.ToString("0.##################",CultureInfo.InvariantCulture);}}
票数 0
EN

Stack Overflow用户

发布于 2009-10-28 08:53:29

为了补充gustafc的回答(他比我快1分钟),下面是C#的相关代码行:

代码语言:javascript
复制
MyDouble.ToString("0.################")

或

代码语言:javascript
复制
string.Format("{0:0.################}", MyDouble);
票数 3
EN

Stack Overflow用户

发布于 2009-10-28 08:31:28

既然如果值是整数(不管它是代表ID还是坐标),那么使用无尾随零的格式是安全的,那么为什么不把您在要点中描述的逻辑编成代码呢?例如(C#,但应该很容易地翻译成Java):

代码语言:javascript
复制
// Could also use Math.Floor, etc., to determine if it is integral
long integralPart = (long)doubleValue;
if ((double)integralPart == doubleValue)
{
  // has no decimals: format it as an integer e.g. integralPart.ToString("D") in C#
}
else
{
  // has decimals: keep them all e.g. doubleValue.ToString("F17")
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1635821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档