小编Ste*_*uhr的帖子

双精度到十进制,15位后没有舍入

将"高"精度Double转换为Decimal时,由于Rounding,我将使用Convert.ToDecimal或转换为(Decimal)而失去精度.

示例:

double d = -0.99999999999999956d;
decimal result = Convert.ToDecimal(d); // Result = -1
decimal result = (Decimal)(d); // Result = -1
Run Code Online (Sandbox Code Playgroud)

Convert.ToDecimal(double)返回的Decimal值最多包含15位有效数字.如果value参数包含超过15个有效数字,则使用舍入舍入为最接近的数字.

所以为了保持我的精度,我必须将我的double转换为String然后调用Convert.ToDecimal(String):

decimal result = System.Convert.ToDecimal(d.ToString("G20")); // Result = -0.99999999999999956d
Run Code Online (Sandbox Code Playgroud)

这个方法是有效的,但是我想避免使用String变量来将Double转换为Decimal而不用15位后的舍入?

c# precision double decimal

7
推荐指数
1
解决办法
1582
查看次数

动态设置路由器插座名称

是否可以以角度2动态设置路由器插座的名称?我需要创建一个包含路由器插座的通用组件.

模板示例:

<nav class="nav menu">
    <a *ngFor="let navRoute of navigationRoutes" class="nav-link" [class.selected]="navRoute.isActive" (click)="onActivated(navRoute.route)">{{navRoute.header}}</a>
</nav>
<router-outlet name=[[DO SOME BINDING HERE]]></router-outlet>
Run Code Online (Sandbox Code Playgroud)

navigationRoutes和name是组件@inputs

typescript angular-ui-router angular

7
推荐指数
2
解决办法
2068
查看次数

Convert.ToDouble的更快替代品

是否存在将String转换为DoubleConvert.ToDouble 更快的方法?

我监视过System.Convert.ToDouble(String)调用并降低了我的应用程序性能.

Convert.ToDouble("1.34515");
Run Code Online (Sandbox Code Playgroud)

Perfomance截图

Jeffrey Sax的工作答案:

static decimal[] decimalPowersOf10 = { 1m, 10m, 100m, 1000m, 10000m, 100000m, 1000000m }; 
static decimal CustomParseDecimal(string input) { 
    long n = 0; 
    int decimalPosition = input.Length; 
    for (int k = 0; k < input.Length; k++) { 
        char c = input[k]; 
        if (c == '.') 
            decimalPosition = k + 1; 
        else 
            n = (n * 10) + (int)(c - '0'); 
    } 
    return n / decimalPowersOf10[input.Length - decimalPosition]; 
Run Code Online (Sandbox Code Playgroud)

}

继Jeffrey Sax CustomParser之后

c# performance

6
推荐指数
1
解决办法
7073
查看次数

多个DataTriggers - 故事板覆盖

我有两个绑定到属性(Side)的DataTriggers,但只能启动一个故事板(最后一个DataTriggers中的一个).

为什么?

我觉得最后一个故事板覆盖了第一个故事板

<Border x:Name="layout" Background="Transparent" BorderBrush="#BAC8CE" BorderThickness="1" CornerRadius="5">
  <Border.Style>
    <Style TargetType="{x:Type Border}">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Side}" Value="Up">
          <DataTrigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                Duration="00:00:01"
                                From="Transparent"
                                To="Green"/>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                Duration="00:00:00.5" 
                                From="Green"
                                To="Transparent"/>
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.EnterActions>
        </DataTrigger>
        <DataTrigger Binding="{Binding Side}" Value="Down">
          <DataTrigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                Duration="00:00:01" 
                                From="Transparent"
                                To="Red"/>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                Duration="00:00:00.5" 
                                From="Red"
                                To="Transparent"/>
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.EnterActions>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Border.Style>
</Border>
Run Code Online (Sandbox Code Playgroud)

c# silverlight wpf datatrigger storyboard

4
推荐指数
1
解决办法
761
查看次数

将ObjectHandle转换为UserControl

如何将Remoting.ObjectHandle转换为UserControl类型?

我想动态实现UserControl:

UserControl myUserControl = (UserControl)Activator.CreateInstance(Assembly.GetExecutingAssembly().FullName, "Client.IndexView");
Run Code Online (Sandbox Code Playgroud)

错误:无法将'System.Runtime.Remoting.ObjectHandle'类型的表达式转换为'UserControl'

c# reflection silverlight wpf activator

3
推荐指数
1
解决办法
1673
查看次数

使用ASP.NET 5禁用客户端验证

如何使用ASP.NET 5禁用客户端验证?

我试着在config.json中将ClientValidationEnabled设置为false,就像这里一样,但我仍然data-val-*在html元素中有属性.

答案:

services.AddMvc()
        .ConfigureMvcViews(options =>
        {
           options.HtmlHelperOptions.ClientValidationEnabled = false;
        });
Run Code Online (Sandbox Code Playgroud)

validation asp.net-core

3
推荐指数
1
解决办法
1489
查看次数

如何使用EF7 RC2抑制环境事务警告

如何使用EF7 RC2抑制环境事务警告?

所述SuppressAmbientTransactionWarning()方法不能被发现.

entity-framework-core .net-core-rc2

2
推荐指数
1
解决办法
2167
查看次数