VB -> C#: Optimize Double(/Decimal)-to-Integer conversion
まだ誰も着手していません。
評価
調査の方向性
提供された VB.NET 入力をオンラインコンバーターで再現し、その C# 出力を期待される出力と比較します。Double および Decimal 式に適用される CInt を処理する変換経路を追跡し、その後、冗長な Math.Round 呼び出しが削除される一方で、結果の変換が期待される動作を維持することを確認します。
索引モデルが issue の本文から書いたものです。
説明
VB.Net input code
Imports System
Public Class A
Public Shared Sub Main()
Dim foo = 0.6
Dim bar = CInt(Math.Truncate(foo))
Dim baz = CInt(Math.Ceiling(foo))
Console.WriteLine(bar)
Console.WriteLine(baz)
End Sub
End Class
Erroneous output
using System;
public partial class A
{
public static void Main()
{
double foo = 0.6d;
int bar = (int)Math.Round(Math.Truncate(foo));
int baz = (int)Math.Round(Math.Ceiling(foo));
Console.WriteLine(bar);
Console.WriteLine(baz);
}
}
Extra verbose Math.Round
Expected output
using System;
public partial class A
{
public static void Main()
{
double foo = 0.6d;
int bar = (int)foo;
int baz = (int)Math.Ceiling(foo);
Console.WriteLine(bar);
Console.WriteLine(baz);
}
}
Decimal is not optimized by the latest VB compiler but I think it can be.
CInt(Decimal) → System.Convert.ToInt32 (similar as (int)Math.Round)
Details
- Product in use: online
- Version in use: e.g. 5.6.3 or a commit hash (if it's a 3rd party tool using this library, try one of the above)
- Did you see it working in a previous version, which? No
- Any other relevant information to the issue, or your interest in contributing a fix.
- 主要言語
- C#
- スター
- 913
- フォーク
- 244
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
icsharpcode/CodeConverter のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
icsharpcode/CodeConverter#1271 · コメント 1 件 ·
-
C# -> VB
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
icsharpcode/CodeConverter#1281 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeオープンDifficult area VB -> C#
難易度 3/5 1〜2日 初心者へのやさしさ 74/100
icsharpcode/CodeConverter#1272 ·
icsharpcode/CodeConverter の issue をすべて見る
似ている issue
-
agentic-workflows area/Docs partner/agentic-workflows
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
microsoft/fluentui-blazor#5364 ·
メンテナーはふだん 1 日以内に返信
-
.NET triage
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
microsoft/agent-framework#8811 ·
メンテナーはふだん 1 日以内に返信
-
.NET Docs
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
getsentry/sentry-dotnet#5637 · コメント 1 件 ·
メンテナーはふだん 2 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
QuantConnect/Lean#9842 ·
メンテナーはふだん 1 日以内に返信