大家都知道 ToString("F") 是干什么的

这里我还是介绍一下

格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下:

格式说明符

说明 示例 输出
C 货币 2.5.ToString("C") ¥2.50
D 十进制数 25.ToString("D5") 00025
E 科学型 25000.ToString("E") 2.500000E+005
F 固定点 25.ToString("F2") 25.00
G 常规 2.5.ToString("G") 2.5
N 数字 2500000.ToString("N") 2,500,000.00
X 十六进制 255.ToString("X") FF

F 这种固定点,应该大家很常用

其实在winserver 上面也不会出现这种事情,主要是最近迁移到 .net core,改完发布上测试环境,一切是多么的美好

就在我慢悠悠的看博客园的时候,测试来找我了,说PayPal支付失败.我当时就懵了,我自测过的啊,而且又在本地上面执行了一次,你看好好的,是不是测试环境有问题。测试就找运维去了

ps:我甩锅的水平不错吧 ( ̄▽ ̄)~*

结果不知道有多久,运维的兄弟过来了:兄弟,我环境初始化了好多次,都是开源的,我啥都没干啊,你能不能看看日志啊,看这运维兄弟那苦巴巴的眼神,好吧

我看了下PayPal的日志

{"name":"VALIDATION_ERROR","details":[{"field":"transactions.amount","issue":"Currency amount must be non-negative number, may optionally contain exactly 2 decimal places separated by '.', optional thousands separator ',', limited to 7 digits before the decimal point and currency which is a valid ISO Currency Code"}],"message":"Invalid request - see details","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"eecc8c8017432"}

Currency amount must be non-negative number, may optionally contain exactly 2 decimal places separated by。啥?金额必须是2个小数位,我是两个小数位啊

不信你看

这时候路过的大牛说了一句,你把 ToString("F2") 放linux上运行下看看

听了之后马上开搞 结果如下

还真是3个小数。后来就查了下msdn的文档,咨询了大牛,发现是文化差异导致的。解决方案就是无视文化差异

ToString("F") 的时候加上CultureInfo.InvariantCulture 属性就可以了,下图是 这个属性的意思

好了,下班了。手工回家

.Net Core 迁移之坑二 《ToString("F") 输出与windows不一致问题》的更多相关文章

  1. .NET Core 迁移躺坑记续集--Win下莫名其妙的超时

    继上一集里说到遇到的各种问题并且弄了n个解决方案之后,特别是对于问题4的解决方案对于切换了HttpClientFactory 我用了你家netcore 2.1下专门解决之前HttpClient口病已久 ...

  2. .NET Core 迁移躺坑记

    最近将自己负责的一个核心接口系统从.Net Framework迁移到了.Net Core. 整体过程,从业务层面说一般般吧(整体还好但还是搞的业务有感,没出严重故障)但是技术层面上感觉其实并没有达到要 ...

  3. .Net Core 迁移之坑一 《WebAPI Get请求参数传入输入带有[]不识别问题》

    在Framwork 体系下 WebAPI项目 会有很多默认特性,例如:Get查询竟然支持三种数组查询方式 1.https://localhost:44390/api/values?status=1&a ...

  4. .NET CORE迁移踩坑

    https://www.cnblogs.com/leolaw/p/10740678.html

  5. .Net Core迁移到MSBuild平台(二)

    一.前言 在上一篇文章.Net Core迁移到MSBuild的多平台编译问题中,简单的讲了下新的项目配置文件中的节点配置,这篇我将用一些例子来详细讲下从project.json迁移到msbuild过程 ...

  6. EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)

    前言 终于踏出第一步探索EF Core原理和本质,过程虽然比较漫长且枯燥乏味还得反复论证,其中滋味自知,EF Core的强大想必不用我再过多废话,有时候我们是否思考过背后到底做了些什么,到底怎么实现的 ...

  7. C# -- HttpWebRequest 和 HttpWebResponse 的使用 C#编写扫雷游戏 使用IIS调试ASP.NET网站程序 WCF入门教程 ASP.Net Core开发(踩坑)指南 ASP.Net Core Razor+AdminLTE 小试牛刀 webservice创建、部署和调用 .net接收post请求并把数据转为字典格式

    C# -- HttpWebRequest 和 HttpWebResponse 的使用 C# -- HttpWebRequest 和 HttpWebResponse 的使用 结合使用HttpWebReq ...

  8. Cookies 初识 Dotnetspider EF 6.x、EF Core实现dynamic动态查询和EF Core注入多个上下文实例池你知道有什么问题? EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)

    Cookies   1.创建HttpCookies Cookie=new HttpCookies("CookieName");2.添加内容Cookie.Values.Add(&qu ...

  9. NET Core迁移

      向ASP.NET Core迁移   有人说.NET在国内的氛围越来越不行了,看博客园文章的浏览量也起不来.是不是要转Java呢? 没有必要扯起语言的纷争,Java也好C#都只是语言是工具,各有各的 ...

随机推荐

  1. LeetCode OJ:Happy Number(欢乐数)

    Write an algorithm to determine if a number is "happy". A happy number is a number defined ...

  2. L141

    nest egg留窝鸡蛋,养老金,储备金first base一垒的位置, <俚>跨出第一步not hold a candle to不能与 ... 相比; 比不上a bone of cont ...

  3. Android中自动跳转

    先看效果图吧    -------->        -------->   Activity类 package com.xm; import java.io.File; import j ...

  4. Http权威指南(TCP连接)

    1.HTTP请求的过程 世界上几乎所有的HTTP通信都是由TCP/IP承载的,当发生HTTP请求时,实际上经过了以下几个步骤: ①浏览器从请求的URL中解析主机名 ②浏览器查询这个主机名的IP地址 ③ ...

  5. GO语言打包ICO图标

    1. go get github.com/akavel/rsrc2. 创建manifest文件, 命名:main.exe.manifest : <?xml version="1.0&q ...

  6. AS3里面的错误代码

    ActionScript 3 出现2048安全策略服务,一种原因是因为843端口下发策略文件有问题,另一种原因是Socket端口有问题,可以用telnet来测试. 其它AS3错误代码的意义可以在官网文 ...

  7. 狗狗有关的知识tips

    <h5>tips1</h5>狗狗脑袋里最关心的事:一是食物,二是性.想教育狗,就要顺应狗狗的想法,而不是一味地以暴力相待.<h5>tips2</h5>” ...

  8. android中状态栏透明

    设置 Acitivity 所在 window 的属性 @Override protected void onCreate(Bundle savedInstanceState) { super.onCr ...

  9. Oracle中遇到的错误

    1. ORA-00937: 不是单组分组函数  和  不是group by表达式 --select count(corp_tn),state_code from t_oa_main where cor ...

  10. CAN总线概述

    基本概念 CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议.在汽车产业中,出于对安全性.舒适性.方便性.低公害.低成本的要求,各种各 ...