VB -> C#: Optimize Double(/Decimal)-to-Integer conversion
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Reproduza a entrada VB.NET fornecida por meio do conversor online e compare sua saída C# com a saída esperada. Rastreie o caminho de conversão responsável pela aplicação de CInt a expressões Double e Decimal e, em seguida, verifique se as chamadas redundantes a Math.Round são removidas, enquanto as conversões resultantes preservam o comportamento esperado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- C#
- Estrelas
- 913
- Forks
- 244
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de icsharpcode/CodeConverter
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
icsharpcode/CodeConverter#1271 · 1 comentário ·
-
C# -> VB
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
icsharpcode/CodeConverter#1281 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
icsharpcode/CodeConverter#1275 ·
-
VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 62/100
icsharpcode/CodeConverter#1273 ·
-
VB -> C#: "Group By Into" Linq queries supressing aggregations ("Into" part) in the converted codeAbertaDifficult area VB -> C#
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 74/100
icsharpcode/CodeConverter#1272 ·
Todas as issues de icsharpcode/CodeConverter
Issues semelhantes
-
0 - Backlog Bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
BrighterCommand/Brighter#4444 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 1 dia
-
area:frontend bug FE P3
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
klasolsson81/jobbliggaren#1915 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
-
triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
microsoft/vscode-copilotstudio#431 ·
Mantenedores costumam responder em até 2 dias