как изменить значение скорости с 0,002543535 на 0

#c#

Вопрос:

я пытаюсь изменить значение скорости с 0,002543535 на 0, но я не знаю, как это сделать и куда поместить код.

 using AssettoCorsaSharedMemory; using System;  namespace ConsoleApplication1 {  class Program  {  static void Main(string[] args)  {  AssettoCorsa ac = new AssettoCorsa();  ac.StaticInfoInterval = 500; // Get StaticInfo updates ever 5 seconds  ac.StaticInfoUpdated  = ac_StaticInfoUpdated; // Add event listener for StaticInfo  ac.PhysicsInterval = 500;  ac.PhysicsUpdated  = ac_PhysicsUpdated;     ac.Start(); // Connect to shared memory and start interval timers    Console.ReadKey();  }   static void ac_StaticInfoUpdated(object sender, StaticInfoEventArgs e)  {  // Print out some data from StaticInfo  // Console.WriteLine("StaticInfo");  // Console.WriteLine(" Car Model: "   e.StaticInfo.CarModel);  // Console.WriteLine(" Track: "   e.StaticInfo.Track);  // Console.WriteLine(" Max RPM: "   e.StaticInfo.MaxRpm);   }   static void ac_PhysicsUpdated(object sender, PhysicsEventArgs e)  {  // Print out some data from StaticInfo   Console.WriteLine(" Speed: "   e.Physics.SpeedKmh);  // Console.WriteLine(" Gear: "   e.Physics.Gear);  // Console.WriteLine(" TC: "   e.Physics.TC);  Console.WriteLine(" RPM: "   e.Physics.Rpms);   }  } }  

и это код, в котором объявлен SpeedKmh

 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;  namespace AssettoCorsaSharedMemory {  public class PhysicsEventArgs : EventArgs  {  public PhysicsEventArgs (Physics physics)  {  this.Physics = physics;  }   public Physics Physics { get; private set; }  }   [StructLayout (LayoutKind.Sequential)]  public struct Coordinates  {  public float X;  public float Y;  public float Z;  }   [StructLayout (LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]  [Serializable]  public struct Physics  {  public int PacketId;  public float Gas;  public float Brake;  public float Fuel;  public int Gear;  public int Rpms;  public float SteerAngle;  public float SpeedKmh;   [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]  public float[] Velocity;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]  public float[] AccG;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] WheelSlip;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] WheelLoad;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] WheelsPressure;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] WheelAngularSpeed;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreWear;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreDirtyLevel;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreCoreTemperature;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] CamberRad;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] SuspensionTravel;   public float Drs;  public float TC;  public float Heading;  public float Pitch;  public float Roll;  public float CgHeight;   [MarshalAs (UnmanagedType.ByValArray, SizeConst = 5)]  public float[] CarDamage;   public int NumberOfTyresOut;  public int PitLimiterOn;  public float Abs;   public float KersCharge;  public float KersInput;  public int AutoShifterOn;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 2)]  public float[] RideHeight;   // since 1.5  public float TurboBoost;  public float Ballast;  public float AirDensity;   // since 1.6  public float AirTemp;  public float RoadTemp;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]  public float[] LocalAngularVelocity;  public float FinalFF;   // since 1.7  public float PerformanceMeter;  public int EngineBrake;  public int ErsRecoveryLevel;  public int ErsPowerLevel;  public int ErsHeatCharging;  public int ErsisCharging;  public float KersCurrentKJ;  public int DrsAvailable;  public int DrsEnabled;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] BrakeTemp;   // since 1.10  public float Clutch;   [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreTempI;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreTempM;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public float[] TyreTempO;   // since 1.10.2  public int IsAIControlled;   // since 1.11  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public Coordinates[] TyreContactPoint;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public Coordinates[] TyreContactNormal;  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]  public Coordinates[] TyreContactHeading;  public float BrakeBias;   // since 1.12  [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]  public float[] LocalVelocity;  } }  

когда моя машина не движется, я получаю значение скорости, как на картинке, кто-нибудь знает, как изменить его всего на 0? _______________________________________________________________________________________

введите описание изображения здесь

Комментарии:

1. Что? Картинка мне очень нравится 0 km/h

2. я говорю о консоли, ее 0,002432423. Я хочу, чтобы он показывал только 0

3. Сделайте все, что вы сделали, чтобы графика показывала 0 км/ч? (таким образом, это согласованно?)

Ответ №1:

Наверное, здесь (больше нигде не видел, что это возможно):

 static void ac_PhysicsUpdated(object sender, PhysicsEventArgs e) {  Console.WriteLine(" Speed: "   e.Physics.SpeedKmh); // <---  // ... }  

Вы можете использовать System.Math.Round метод для получения ближайшего целочисленного значения или явно привести его к int типу:

 float speed = e.Physics.SpeedKmh; // <-- 0.002543535 (float type) double dRoundedSpeed = Math.Round(speed); // <-- 0 (double type) float fRoundedSpeed = (float)Math.Round(speed); // <-- 0 (float type) int iRoundedSpeed = (int)speed; // <-- 0 (int type)