gpt4 book ai didi

c# - 如何智能安全地将 Double 转换为 String?

转载 作者:可可西里 更新时间:2023-11-01 08:40:04 25 4
gpt4 key购买 nike

尽量不要在这里重复自己(干),帮帮我。 =)

我有一个 double 代表评分/5。

可能的值是:

0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5.

我想将其转换为不带小数位的字符串

所以值会变成:

"0", "05", "1", "15", "2", "25", "3", "35", "4", "45", "5".

我为什么要这样做?因为我正在尝试根据值动态创建链接:

string link = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(link, "15");

可能的值在别处处理/验证,换句话说,我可以 100% 确定该值将始终是我提到的值之一。

有什么想法吗?我可以在 .ToString() 方法中使用一些特殊格式吗?还是我坚持使用 un-DRY switch 语句?或者我可以厚颜无耻地做一个decimal.ToString().Replace(".","")吗?

编辑:

哇哦,谢谢大家的回答! =)

大多数答案都是正确的,所以我会把这个问题留一天左右,然后选出得票最多的答案。

无论如何,我最终创建了一个简单的扩展方法:

public static string ToRatingImageLink(this decimal value)
{
string imageLinkFormat = "http://somewhere.com/images/rating_{0}.gif";
return string.Format(imageLinkFormat, value.ToString().Replace(".0", string.Empty).Replace(".", string.Empty);
}

猜猜这是“KISS”和“DRY”的情况。在这种情况下,扩展方法的语法糖使其保持 DRY,并且实际的单行实现满足 KISS。

最佳答案

小数分隔符取决于当前的文化偏好:

d.Replace(
System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator,
String.Empty)

会将 '.'',' 替换为 ""

关于c# - 如何智能安全地将 Double 转换为 String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3332441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com